Skip to content

[SM6.10] VEC9 TriangleObjectPositions / CHECK-pass validation tests#7831

Merged
damyanp merged 6 commits into
microsoft:mainfrom
simoll:sm610_dxil_opcodes
Jan 15, 2026
Merged

[SM6.10] VEC9 TriangleObjectPositions / CHECK-pass validation tests#7831
damyanp merged 6 commits into
microsoft:mainfrom
simoll:sm610_dxil_opcodes

Conversation

@simoll

@simoll simoll commented Oct 22, 2025

Copy link
Copy Markdown
Collaborator
  • DXIL validation tests showing correct uses pass

SM6.10 tracking bug: #7824

@V-FEXrt

V-FEXrt commented Oct 24, 2025

Copy link
Copy Markdown
Collaborator

Hey Simon!

We've actually been talking about DXIL op stuff internally that this PR is going to fall under. Specially we want a better system to mark ops as experimental before they are upgraded to stable!

I have a proposal up (microsoft/hlsl-specs#698) but due to scheduling conflicts we aren't going to be able to make a final decision until ~Nov 4th.

Since the decision there has impacts on this PR we are holding off on the review for just a little bit. I wanted to give you a heads up so you weren't surprised by the silence from our side

@V-FEXrt

V-FEXrt commented Nov 12, 2025

Copy link
Copy Markdown
Collaborator

microsoft/hlsl-specs#729

The proposal is up here, once the implementation lands the ops here will need to be renumbered. I suspect the implementation will land quite quickly

@V-FEXrt

V-FEXrt commented Nov 14, 2025

Copy link
Copy Markdown
Collaborator

Spec has been merged! I'm on vacation the next few weeks but @tex3d should be uploading the infrastructure change soon. Then this can be rebased on that

@simoll

simoll commented Dec 1, 2025

Copy link
Copy Markdown
Collaborator Author

Spec has been merged! I'm on vacation the next few weeks but @tex3d should be uploading the infrastructure change soon. Then this can be rebased on that

@tex3d What's the status of the experimental opcode infra change to unblock this PR?

@tex3d

tex3d commented Dec 1, 2025

Copy link
Copy Markdown
Contributor

@tex3d What's the status of the experimental opcode infra change to unblock this PR?

I'm trying to get a second review on this: #7947. Once merged, you can update the branch and move the intrinsic definitions in hctdb.py into experimental and update any references to the opcode numbers that changed.

@tex3d tex3d left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that #7947 has merged, you'll need to rebase and move things to experimental ops according to the comments I made.

Comment thread utils/hct/hctdb.py
Comment thread utils/hct/hctdb.py Outdated
@tex3d

tex3d commented Dec 8, 2025

Copy link
Copy Markdown
Contributor

I believe we'll also want to reserve high-level intrinsic IDs for these ASAP. It might be good to do this in the same PR, but a separate PR for that would be ok too.

That means updates to gen_intrin_main.txt, generated files, as well as manually adding EmptyLower entries for gLowerTable in HLOperationLower.cpp for each new high-level intrinsic operation.

This could serve as a good example for how to reserve HLSL intrinsics and DXIL opcodes for a feature before it's implemented, using the new experimental DXIL op table.

@tex3d

tex3d commented Dec 10, 2025

Copy link
Copy Markdown
Contributor

I've created a PR to reserve HL and DXIL ops for these operations here: #7995.

So, you should be able to re-apply just the changes necessary on top of main when that PR merges.

@simoll

simoll commented Dec 10, 2025

Copy link
Copy Markdown
Collaborator Author

Thanks @tex3d. I'll rebase when #7995 lands

@simoll simoll changed the title [SM6.10] DXIL opcodes for ClusterID and TriangleObjectPositions [SM6.10] VEC9 TriangleObjectPositions / CHECK-pass validation tests Dec 15, 2025
@simoll simoll force-pushed the sm610_dxil_opcodes branch from b3a793f to 63a5b8b Compare December 15, 2025 05:59
@simoll simoll requested a review from tex3d December 15, 2025 06:01
Comment thread tools/clang/test/DXILValidation/clusterid_passing.ll Outdated

@tex3d tex3d left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this looks good, with just one concern:

The signed form of the i32 opcode is the one llvm will print and the one that will be needed in CHECK lines of tests. I think it would be best to stick to the signed form for input IR as well, so that each opcode doesn't have two textural forms to search/replace when updating ops in tests for released versions.

@tex3d tex3d left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I added suggested change comments to make updating the opcodes to canonical form easier.

Comment thread tools/clang/test/DXILValidation/clusterid_passing.ll Outdated
Comment thread tools/clang/test/DXILValidation/clusterid_passing.ll Outdated
Comment thread tools/clang/test/DXILValidation/triangle_position_passing.ll Outdated
Comment thread tools/clang/test/DXILValidation/triangle_position_passing.ll Outdated
@simoll simoll self-assigned this Jan 6, 2026
simoll and others added 4 commits January 6, 2026 13:05
Co-authored-by: Tex Riddell <texr@microsoft.com>
Co-authored-by: Tex Riddell <texr@microsoft.com>
Co-authored-by: Tex Riddell <texr@microsoft.com>
Co-authored-by: Tex Riddell <texr@microsoft.com>
@simoll simoll requested a review from tex3d January 7, 2026 05:40
@simoll

simoll commented Jan 12, 2026

Copy link
Copy Markdown
Collaborator Author

@tex3d Please re-review. All tests use signed opcodes in the input IR now

Comment thread tools/clang/test/LitDXILValidation/clusterid_passing.ll

@tex3d tex3d left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the change is good, but the tests need to be moved if you want them to run, and they need a REQUIRES line to prevent them from running against down-level released DXIL validators.

@simoll

simoll commented Jan 13, 2026

Copy link
Copy Markdown
Collaborator Author

Thanks . I've moved the tests to LitDXILValidation and add the REQUIRES: dxil-1-10 clause.
Ready to merge

@tex3d tex3d left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@bob80905 bob80905 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@damyanp

damyanp commented Jan 15, 2026

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@damyanp damyanp enabled auto-merge (squash) January 15, 2026 01:52
@damyanp damyanp merged commit 8480bc6 into microsoft:main Jan 15, 2026
12 checks passed
@github-project-automation github-project-automation Bot moved this from New to Done in HLSL Roadmap Jan 15, 2026
@simoll simoll deleted the sm610_dxil_opcodes branch January 15, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

5 participants